iT邦幫忙

2026 iThome 鐵人賽

DAY 26
0
Software Development

從零開始學程式語言:Java 新手修煉記系列 第 26 篇

Day 26:Java Collection 集合物件(2)

  • 分享至 

  • xImage
  •  

本日學習:
list 介面

  1. 有序集合物件,依加入順序排列
  2. 元素可重複、具有索引值
  3. 為 Collection 介面的子介面
  4. 常用函數:
    • void add(int index, T element):在 index 位置加入 element 元素,索引值從 0 開始
    • boolean addAll(int index, Collection<? extends T> c)
    • T get(int index)
    • int indexOf(Object O):搜尋集合中是否有與 o 相同的元素,並傳回第一個搜尋到的索引值,找不到則傳回 -1
    • Iterator iterator()取得可走訪集合的物件
    • int lastIndexOf(Object o)
    • ListIteratorlistIterator(int index)
    • T remove(int index)
    • T set(int index, T element):置換
    • ListsubList(int fromIndex, int toIndex)

LinkedList 類別

  1. 鏈結串列:分為單向(一個節點)、雙向(兩個節點,最後一個指向 null)與環狀(兩個節點,最後一個指向第一個)三種
  2. LinkedList 類別為雙向鏈結串列
  3. 第 0 個元素為 first,最後 1 個元素為 last
  4. 每一個元素包含元素值與索引值
  5. 若增加或刪減函數,會自動重新排序
  6. 可用 get() 逐一將元素取出或直接將變數印出
  7. java.util.LinkedList 類別:
    • 建構子:
      LinkedList()
      LinkedList(Collection<? extends T>c)
    • 函數:
      void addFirst(T o)
      void addLast(T o)
      T getFirst()
      T getLast()
      T removeFirst()
      T removeLast()

ArrayList 類別

  1. 依靠節點之間串連下一個元素,只能循序尋找下一個元素
  2. 以陣列的方式儲存資料
  3. 尋找元素上效率較好,但增減元素效率較差
  4. java.util.ArrayList 類別:
    • 建構子:
      • ArrayList()
      • ArrayList(Collection<? extends T>c)
    • 函數:void trimToSize():將 ArrayList 物件容量裁剪成目前元素數量
  5. 可用 get() 逐一將元素取出或直接將變數印出

Map 介面

  1. 獨立架構介面
  2. 以關鍵值儲存,會對應到指定資料(value)
  3. M<K, V> 表示
  4. 常用函數:
    • void clear():從集合中移除所有元素
    • boolean containsKey(Object key):若集合物件裡包含關鍵值 key,則傳回 true
    • boolean containsValue(Object value)
    • V get(Object key):傳回集合物件中,key 的對應值
    • boolean isEmpty()
    • V put(K key, V value):新增
    • void putAll(Map<? extends K.? extends V>t)
    • SetkeySet():將關鍵值存入一個實作 Set 介面的物件後傳回
    • V remove(Object key)
    • int size()
    • Colletionvalues()
  5. values() 可能包含重複的值,keySet() 只對應一個

上一篇
Day 25:Java Collection 集合物件(1)
下一篇
Day 27:Java Collection 集合物件(3)
系列文
從零開始學程式語言:Java 新手修煉記 共 29 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言